package com.jala.base.data;

public interface WxSessionCache {
	
	/**
	 * 存储session到分布式缓存
	 * @param sessionId 当前会话id
	 * @param sessionMap 值对象
	 * @param timeout 过期时间
	 */
	void put(String sessionId, WxSessionMap sessionMap, int timeout);


	/**
	 * 从分布式缓存获取会话
	 * @param sessionId 当前会话id
	 * @return 会话对象
	 */
	WxSessionMap get(String sessionId);
	
	
	/**
	 * 设置会话有效时间
	 * @param sessionId 当前会话id
	 * @param interval 有效时间，单位秒
	 */
	void setMaxInactiveInterval(String sessionId, int interval);
	
	
	/**
	 * 销毁当前会话
	 * @param sessionId 当前会话id
	 */
	void destroy(String sessionId);
	
	
	/**
	 * 存储casTicket与sessionid的关系到分布式缓存
	 * @param casTicket cas提供的ticket
	 * @param sessionId 当前会话id	 * 
	 * @param timeout 过期时间
	 */
	void putTicket(String casTicket, String sessionId, int timeout);
	
	/**
	 * 销毁casTicket
	 * @param casTicket 
	 *  @return 会话对象的ID
	 */
	String destroyTicket(String casTicket);

}
